{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要安装tensorflow的话：pip3 install --index-url https://pypi.douban.com/simple tensorflow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "tf.logging.set_verbosity(tf.logging.INFO)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "更直观显示数据（训练、验证、测试数据集）：\n",
    "    train.images.shape (55000, 784)\n",
    "    \n",
    "    train.labels.shape (55000, 10)\n",
    "    \n",
    "    validation.images.shape (5000, 784)\n",
    "    \n",
    "    validation.labels.shape (5000, 10)\n",
    "    \n",
    "    test.images.shape (10000, 784)\n",
    "    \n",
    "    test.labels.shape (10000, 10)\n",
    "\n",
    "可以看到images里面有数量不等的图片，每张图片是28x28长度的一个一维向量， 所以用的时候需要先给它还原成28x28的二维图片。labels中则是图片对应的数字的值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From <ipython-input-3-a34a30334354>:1: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n",
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please write your own downloading logic.\n",
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.data to implement this functionality.\n",
      "Extracting ./train-images-idx3-ubyte.gz\n",
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.data to implement this functionality.\n",
      "Extracting ./train-labels-idx1-ubyte.gz\n",
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:110: dense_to_one_hot (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.one_hot on tensors.\n",
      "Extracting ./t10k-images-idx3-ubyte.gz\n",
      "Extracting ./t10k-labels-idx1-ubyte.gz\n",
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n",
      "(55000, 784)\n",
      "(55000, 10)\n",
      "(5000, 784)\n",
      "(5000, 10)\n",
      "(10000, 784)\n",
      "(10000, 10)\n"
     ]
    }
   ],
   "source": [
    "mnist = input_data.read_data_sets(\"./\", one_hot=True)\n",
    "\n",
    "print(mnist.train.images.shape)\n",
    "print(mnist.train.labels.shape)\n",
    "\n",
    "print(mnist.validation.images.shape)\n",
    "print(mnist.validation.labels.shape)\n",
    "\n",
    "print(mnist.test.images.shape)\n",
    "print(mnist.test.labels.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 64 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图之前首先设置figure对象，此函数相当于设置一块自定义大小的画布，\n",
    "# 使得后面的图形输出在这块规定了大小的画布上，其中参数figsize设置画布大小\n",
    "plt.figure(figsize=(8, 8))\n",
    "\n",
    "#subplot - 将figure设置的画布大小分成几个部分，参数‘8 8’表示8(row)x8(col),即将画布分成8x8\n",
    "for idx in range(64):\n",
    "    plt.subplot(8, 8, idx + 1)\n",
    "    plt.axis('off')\n",
    "    plt.title('[{}]'.format(np.argmax(mnist.train.labels[idx])))\n",
    "    plt.imshow(mnist.train.images[idx].reshape((28, 28)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，定义用于训练的网络，首先定义网络的输入。\n",
    "\n",
    "这里我们直接使用上面的数据作为输入，所以定义两个placeholder分别用于图像和lable数据，另外，定义一个bool类型的变量用于标识当前网络是否正在训练。\n",
    "\n",
    "为了让网络更高效的运行，多个数据会被组织成一个batch送入网络，两个placeholder的第一个维度就是batchsize，因为我们这里还没有确定batchsize，所以第一个维度留空。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = tf.placeholder(\"float\", [None, 784], name='x')\n",
    "y = tf.placeholder(\"float\", [None, 10], name='y')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "因为我们输入的是图片展开后的一维向量，所以第一步就需要先把一维向量还原为二维的图片。\n",
    "\n",
    "### 原始：28x28x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_image = tf.reshape(x, [-1, 28, 28, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，我们定义第一个卷积层，使用6个5X5的卷积核对输入数据进行卷积， padding方式选择valid，\n",
    "\n",
    "##### 所以输出数据的宽高变为24x24,但是深度已经从原来的1变成了6。 本层卷积的激活函数为relu。\n",
    "\n",
    "### 28-5+1= 24，所以从原始的28x28x1 变成24 x 24，但是因为有6个卷积核，所以会生成6个不同的结果，即24 x 24 x 6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "conv2d说明：\n",
    "tf.contrib.slim.conv2d (inputs,\n",
    "\n",
    "            num_outputs,#[卷积核个数]\n",
    "            \n",
    "            kernel_size,#[高度，宽度]\n",
    "            \n",
    "            stride=1,#步长\n",
    "            \n",
    "            padding='SAME',#VALID\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n"
     ]
    }
   ],
   "source": [
    "with tf.name_scope('conv1'):\n",
    "    C1 = tf.contrib.slim.conv2d(\n",
    "        x_image, 6, [5, 5], padding='VALID', activation_fn=tf.nn.relu)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 接下来进行stride为2的最大池化，池化后，输出深度不变，但是长宽减半，所以输出变成了12x12,深度6.\n",
    "\n",
    "### 池化对深度不会有变化，所以深度还是6，因为步长为2，所以24/2 = 12， 这里会变成 12x12x6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.name_scope('pool1'):\n",
    "    S2 = tf.contrib.slim.max_pool2d(C1, [2, 2], stride=[2, 2], padding='VALID')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 接下来，我们定义第二个卷积层，使用16个5X5的卷积核对输入数据进行卷积， padding方式还是选择valid，输出8x8,深度为16，本层卷积的激活函数为relu。\n",
    "\n",
    "### 12-5+1=8，所以输出变成8x8，因为有16个卷积核，所以会有16个结果输出，即8x8x16\n",
    "## 这里需要特别注意的是，因为卷积运算是所有矩阵跟卷积核点乘后再进行全部sum，所以不管之前深度是多少，以这次的卷积核有多少个为主"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.name_scope('conv2'):\n",
    "    C3 = tf.contrib.slim.conv2d(\n",
    "        S2, 16, [5, 5], padding='VALID', activation_fn=tf.nn.relu)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 再进行一次stride为2的最大池化，输出为4x4,深度16。\n",
    "\n",
    "### 从8x8x16，因为步长为2，直接除以2，则变成了4x4x16"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.name_scope('pool2'):\n",
    "    S4 = tf.contrib.slim.max_pool2d(C3, [2, 2], stride=[2, 2], padding='VALID')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 池化后的数据是3维的，这里做一个拉平的操作，将3维数据展开到1维，然后送入两层全连接，全连接隐层中神经元个数分别为120，84。\n",
    "\n",
    "### 之前学的全连接差不多还回去了，需要抽时间再回顾下"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/ben/anaconda3/lib/python3.7/site-packages/tensorflow/contrib/layers/python/layers/layers.py:1624: flatten (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use keras.layers.flatten instead.\n"
     ]
    }
   ],
   "source": [
    "with tf.name_scope('fc1'):\n",
    "    S4_flat = tf.contrib.slim.flatten(S4) # Flatten（展为一维）  \n",
    "    C5 = tf.contrib.slim.fully_connected(\n",
    "        S4_flat, 120, activation_fn=tf.nn.relu)\n",
    "\n",
    "with tf.name_scope('fc2'):\n",
    "    F6 = tf.contrib.slim.fully_connected(C5, 84, activation_fn=tf.nn.relu)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###### 对特征添加一个0.6的dropout，以40%的概率丢弃特征中的某些数据，\n",
    "这样可以提高网络的推广能力，减少过拟合的可能性。\n",
    "\n",
    "需要注意的是，dropout仅在训练的时候使用，验证的时候，需要关闭dropout，\n",
    "所以验证时候的keep_prob是1.0。\n",
    "\n",
    "dropout的输出最终送入一个隐层为10的全连接层，这个全连接层即为最后的分类器。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 针对dropout说明：\n",
    "\n",
    "tf.nn.dropout()是tensorflow里面为了防止或减轻过拟合而使用的函数，它一般用在全连接层\n",
    "Dropout就是在不同的训练过程中随机扔掉一部分神经元。也就是让某个神经元的激活值以一定的概率p，让其停止工作，这次训练过程中不更新权值，也不参加神经网络的计算。但是它的权重得保留下来（只是暂时不更新而已），因为下次样本输入时它可能又得工作了\n",
    "\n",
    "x：指输入，输入tensor\n",
    "\n",
    "keep_prob: float类型，每个元素被保留下来的概率，设置神经元被选中的概率,在初始化时keep_prob是一个占位符, keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值，例如keep_prob: 0.5\n",
    "\n",
    "noise_shape  : 一个1维的int32张量，代表了随机产生“保留/丢弃”标志的shape。\n",
    "\n",
    "seed : 整形变量，随机数种子。\n",
    "\n",
    "name：指定该操作的名字\n",
    "\n",
    "dropout必须设置概率keep_prob，并且keep_prob也是一个占位符，跟输入是一样的\n",
    "\n",
    "keep_prob = tf.placeholder(tf.float32)\n",
    "\n",
    "train的时候才是dropout起作用的时候，test的时候不应该让dropout起作用\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From <ipython-input-18-413a88f1eb86>:3: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "with tf.name_scope('dropout'):\n",
    "    keep_prob = tf.placeholder(name='keep_prob', dtype=tf.float32)\n",
    "    F6_drop = tf.nn.dropout(F6, keep_prob)\n",
    "\n",
    "with tf.name_scope('fc3'):\n",
    "    logits = tf.contrib.slim.fully_connected(F6_drop, 10, activation_fn=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来定义loss和用于优化网络的优化器。loss计算使用了sparse_softmax_cross_entropy_with_logits, 这样做的好处是labels可以不用手动做one_hot省了一些麻烦。这里使用了sgd优化器，学习率为0.3。\n",
    "\n",
    "### 试试看，增大减小学习率，换个优化器再进行训练会发生什么。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Conv/weights:0\n",
      "INFO:tensorflow:Summary name Conv/weights:0 is illegal; using Conv/weights_0 instead.\n",
      "Conv/biases:0\n",
      "INFO:tensorflow:Summary name Conv/biases:0 is illegal; using Conv/biases_0 instead.\n",
      "Conv_1/weights:0\n",
      "INFO:tensorflow:Summary name Conv_1/weights:0 is illegal; using Conv_1/weights_0 instead.\n",
      "Conv_1/biases:0\n",
      "INFO:tensorflow:Summary name Conv_1/biases:0 is illegal; using Conv_1/biases_0 instead.\n",
      "fully_connected/weights:0\n",
      "INFO:tensorflow:Summary name fully_connected/weights:0 is illegal; using fully_connected/weights_0 instead.\n",
      "fully_connected/biases:0\n",
      "INFO:tensorflow:Summary name fully_connected/biases:0 is illegal; using fully_connected/biases_0 instead.\n",
      "fully_connected_1/weights:0\n",
      "INFO:tensorflow:Summary name fully_connected_1/weights:0 is illegal; using fully_connected_1/weights_0 instead.\n",
      "fully_connected_1/biases:0\n",
      "INFO:tensorflow:Summary name fully_connected_1/biases:0 is illegal; using fully_connected_1/biases_0 instead.\n",
      "fully_connected_2/weights:0\n",
      "INFO:tensorflow:Summary name fully_connected_2/weights:0 is illegal; using fully_connected_2/weights_0 instead.\n",
      "fully_connected_2/biases:0\n",
      "INFO:tensorflow:Summary name fully_connected_2/biases:0 is illegal; using fully_connected_2/biases_0 instead.\n"
     ]
    }
   ],
   "source": [
    "cross_entropy_loss = tf.reduce_mean(\n",
    "    tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y))\n",
    "\n",
    "l2_loss = tf.add_n([\n",
    "    tf.nn.l2_loss(w)\n",
    "    for w in tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES)\n",
    "])\n",
    "\n",
    "for w in tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES):\n",
    "    print(w.name)\n",
    "    tf.summary.histogram(w.name, w)\n",
    "    \n",
    "total_loss = cross_entropy_loss + 7e-5 * l2_loss\n",
    "tf.summary.scalar('cross_entropy_loss', cross_entropy_loss)\n",
    "tf.summary.scalar('l2_loss', l2_loss)\n",
    "tf.summary.scalar('total_loss', total_loss)\n",
    "\n",
    "optimizer = tf.train.GradientDescentOptimizer(\n",
    "    learning_rate=0.2).minimize(total_loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 需要注意的是，上面的网络，最后输出的是未经softmax的原始logits，而不是概率分布， 要想看到概率分布，还需要做一下softmax。\n",
    "\n",
    "将输出的结果与正确结果进行对比，即可得到我们的网络输出结果的准确率。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "pred = tf.nn.softmax(logits)\n",
    "correct_pred = tf.equal(tf.argmax(y, 1), tf.argmax(logits, 1))\n",
    "accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "saver用于保存或恢复训练的模型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 100\n",
    "trainig_step = 1100\n",
    "\n",
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "以上定义的所有操作，均为计算图，也就是仅仅是定义了网络的结构，实际需要运行的话，还需要创建一个session，并将数据填入网络中。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "after 100 training steps, the loss is 0.408641, the validation accuracy is 0.9368\n",
      "after 200 training steps, the loss is 0.1312, the validation accuracy is 0.956\n",
      "after 300 training steps, the loss is 0.231639, the validation accuracy is 0.9558\n",
      "after 400 training steps, the loss is 0.108682, the validation accuracy is 0.9624\n",
      "after 500 training steps, the loss is 0.231838, the validation accuracy is 0.9756\n",
      "after 600 training steps, the loss is 0.104334, the validation accuracy is 0.9568\n",
      "after 700 training steps, the loss is 0.125729, the validation accuracy is 0.9764\n",
      "after 800 training steps, the loss is 0.138232, the validation accuracy is 0.9756\n",
      "after 900 training steps, the loss is 0.191887, the validation accuracy is 0.975\n",
      "after 1000 training steps, the loss is 0.0310679, the validation accuracy is 0.982\n",
      "the training is finish!\n",
      "the test accuarcy is: 0.9838\n"
     ]
    }
   ],
   "source": [
    "merged = tf.summary.merge_all()\n",
    "with tf.Session() as sess:\n",
    "\n",
    "    writer = tf.summary.FileWriter(\"logs/\", sess.graph)\n",
    "\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "\n",
    "    #定义验证集与测试集\n",
    "    validate_data = {\n",
    "        x: mnist.validation.images,\n",
    "        y: mnist.validation.labels,\n",
    "        keep_prob: 1.0\n",
    "    }\n",
    "    test_data = {x: mnist.test.images, y: mnist.test.labels, keep_prob: 1.0}\n",
    "\n",
    "    for i in range(trainig_step):\n",
    "        xs, ys = mnist.train.next_batch(batch_size)\n",
    "        _, loss, rs = sess.run(\n",
    "            [optimizer, cross_entropy_loss, merged],\n",
    "            feed_dict={\n",
    "                x: xs,\n",
    "                y: ys,\n",
    "                keep_prob: 0.6\n",
    "            })\n",
    "        writer.add_summary(rs, i)\n",
    "\n",
    "        #每100次训练打印一次损失值与验证准确率\n",
    "        if i > 0 and i % 100 == 0:\n",
    "            validate_accuracy = sess.run(accuracy, feed_dict=validate_data)\n",
    "            print(\n",
    "                \"after %d training steps, the loss is %g, the validation accuracy is %g\"\n",
    "                % (i, loss, validate_accuracy))\n",
    "            saver.save(sess, './model.ckpt', global_step=i)\n",
    "\n",
    "    print(\"the training is finish!\")\n",
    "    #最终的测试准确率\n",
    "    acc = sess.run(accuracy, feed_dict=test_data)\n",
    "    print(\"the test accuarcy is:\", acc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试过学习率0.1 0.2 0.3 0.6，只有0.2的学习率效果超过0.98"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./model.ckpt-1000\n",
      "1.0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 16 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    ckpt = tf.train.get_checkpoint_state('./')\n",
    "    if ckpt and ckpt.model_checkpoint_path:\n",
    "        saver.restore(sess, ckpt.model_checkpoint_path)\n",
    "        final_pred, acc = sess.run(\n",
    "            [pred, accuracy],\n",
    "            feed_dict={\n",
    "                x: mnist.test.images[:16],\n",
    "                y: mnist.test.labels[:16],\n",
    "                keep_prob: 1.0\n",
    "            })\n",
    "        orders = np.argsort(final_pred)\n",
    "        plt.figure(figsize=(8, 8))\n",
    "        print(acc)\n",
    "        for idx in range(16):\n",
    "            order = orders[idx, :][-1]\n",
    "            prob = final_pred[idx, :][order]\n",
    "            plt.subplot(4, 4, idx + 1)\n",
    "            plt.axis('off')\n",
    "            plt.title('{}: [{}]-[{:.1f}%]'.format(\n",
    "                np.argmax(mnist.test.labels[idx]), order, prob * 100))\n",
    "            plt.imshow(mnist.test.images[idx].reshape((28, 28)))\n",
    "\n",
    "    else:\n",
    "        pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
